第 1 步 - 本地化文本和纹理内容

在本教程的这一步骤中,您将学习如何将资源添加到本地化表、如何为翻译准备 Kanzi 应用程序中的文本内容,以及如何将已翻译文本内容添加到 Kanzi 应用程序。您还将学习如何创建触发器来更改地区以及如何本地化您的应用程序中的纹理。

教程资产

本教程的起点资料是存储在 <KanziWorkspace>/Tutorials/Localization/Start/Tool_project 目录中的 Localization.kzproj Kanzi Studio工程文件。

您在本教程中使用的资产存储在 <KanziWorkspace>/Tutorials/Localization/Assets 中:

<KanziWorkspace>/Tutorials/Localization/Completed/Tool_project 目录包含本教程已完成的 Kanzi Studio 工程。

将资源添加到本地化表并导入翻译

要将资源添加到本地化表并导入翻译:

  1. 打开位于 <KanziWorkspace>/Tutorials/Localization/Start/Tool_project/Localization.kzprojKanzi Studio 工程。工程包含一个布局,您可在其中构建应用程序、English 地区的文本资源、要本地化的纹理以及状态机,以便在不同地区之间切换时控制选择栏。
  2. 工程 (Project) 中,右键点击屏幕 (Screen) 节点,并在上下文菜单中选择添加资源至本地化表 (Add Resources to a Localization Table)
    当在屏幕 (Screen) 节点上使用添加资源至本地化表 (Add Resources to a Localization Table) 命令时,您可以使用 Kanzi Studio 将工程中的所有资源添加到本地化表中并将它们本地化。要只将所选节点及其节点树的资源添加到本地化表,请右键点击节点并选择 添加资源至本地化表 (Add Resources to a Localization Table)
  3. 添加资源至本地化表 (Add Resources to a Localization Table) 窗口中设置:
    1. 本地化表 (Localization Table) 添加到您要添加资源的本地化表。如果您没有本地化表,选择<Create New>
      本地化表包含有关哪些地区使用哪些资源的信息。
    2. 在窗口右上角,您可以选择要在窗口中显示哪些类型的资源。Kanzi 默认在工程中显示文本资源
      在本教程的这一步骤中,您将只学习本地化文本资源。在下一步骤中,再学习本地化其他类型的资源。
    3. 点击全部选中 (Select All) 选择所有列出的资源。
      使用每个资源旁的复选框来选择该资源。要选择或取消选择所有资源,使用窗口左下方的按钮。
    4. 点击添加 (Add)

    Kanzi Studio 从您选择的所有资源类型创建资源和资源 ID,并将其添加到您选择的本地化表中。您可以在素材库 (Library) > 本地化 (Localization)中找到本地化表。现在您可以本地化资源,并在本地化表中设置要将哪个资源用于哪个地区。

  4. 素材库 (Library) > 本地化 (Localization) 中右键点击本地化表本地化表(主)(Localization Table, Main) 并选择导出本地化表 (Export Localization Table)
    Kanzi Studio 会将 .pot 文件格式的本地化表模板导出到 <ProjectName>/Localization/<LocalizationTableName> 目录。
    首次本地化 Kanzi 应用程序时,将该 .pot 文件发送给译员。这是包含本地化表中每个文本资源的字符串及其上下文的模板文件。
    译员使用 .pot 模板文件翻译每个地区的文本内容。翻译结果是每个地区的 .po 文件。对于本教程,您可以在 <KanziWorkspace>/Tutorials/Localization/Assets/Text 目录中找到含芬兰语(fi-FI 地区)和西班牙语(es-ES 地区)的已翻译 .po 文件。您还可以在这里找到在本教程的最后一个步骤中添加为地区包的JapaneseChineseKorean 地区的已翻译 .po 文件。
  5. 素材库 (Library) > 本地化 (Localization) 中右键点击导出的本地化表,选择手动导入本地化表 (Import Localization Table Manually),转到 <KanziWorkspace>/Tutorials/Localization/Assets/Text 并导入 fi-FIes-ES 地区的 .po 文件。

    Kanzi Studio 会创建每个 .po 文件中指定的地区,并将 .po 文件的翻译添加到本地化表。Kanzi 使用本地化表来存储本地化的文本资源以及关于哪个地区使用哪个工程资源的信息。
    双击本地化表打开并查看本地化表中的资源。
  6. (可选)要立即查看每个地区在 Kanzi Studio 中如何工作,在工程 (Project) 中选择屏幕 (Screen) 节点,在属性 (Properties) 中将地区 (Locale) 属性设为要在预览 (Preview) 中查看的地区。

创建触发器更改地区

您可以通过设置屏幕 (Screen) 节点中的地区 (Locale) 属性的值更改您的 Kanzi 应用程序的地区。在本节中,您将学习创建控件并使用触发器来更改应用程序地区。您还可以创建选择栏,在选中地区时显示。

  1. 预设件 (Prefabs) 中创建地区选择切换按钮的预设件:
    1. 预设件 (Prefabs) 中点击 ,选择2D 切换按钮 (Toggle button 2D),将其命名为 LocaleButton,并在其中创建 2D 文本块 (Text Block 2D) 节点。
      使用2D 切换按钮 (Toggle button 2D) 节点中的触发器设置地区和2D 文本块 (Text Block 2D) 节点,在界面中显示地区的名称。
    2. 预设件 (Prefabs) 中选择 LocaleButton,在 属性 (Properties) 中添加 水平对齐 (Horizontal Alignment) 属性,将其设为 拉伸 (Stretch)

      您可以设置地区按钮以跨越LocaleSelector 堆栈布局节点的大小。
    3. 选择2D 文本块 (Text Block 2D) 节点并在属性 (Properties) 中添加和设置:
      • 水平边距 (Horizontal Margin) 属性左对齐 (Left) 属性字段为 30
      • 水平边距 (Horizontal Margin) 属性右对齐 (Right) 属性字段为 30
      • 垂直边距 (Vertical Margin) 属性上对齐 (Top) 属性字段为 10
      • 垂直边距 (Vertical Margin) 属性下对齐 (Bottom) 属性字段为 10

      您可设置2D 文本块 (Text Block 2D) 节点的边距来定位地区按钮在应用程序界面中的位置。
    4. 预设件 (Prefabs) 中选择 2D 文本块 (Text Block 2D) 节点,在文本 (Text) 属性旁的 属性 (Properties) 中点击 并命名属性 Localization.LocaleName。这样您可以为预设件的每个实例显示不同的文本。
      点击 Kanzi Studio 从该属性创建一个自定义属性,将其添加到预设件的根并创建一个 ##Template 绑定到预设件根中的属性。 这样,您可以在预设件实例的根目录中设置要让2D 文本块 (Text Block 2D) 节点显示的文本。
      预设件可以包含具有各自属性的节点树。编辑预设件中的节点或工程中的预设件实例时,就会更改该预设件所有实例中的这些节点。但您可以通过重写默认预设件中的值来自定义预设件的各个实例以获得各个值。例如,您为地址簿条目创建预设件时,每个地址簿条目要显示不同的名称、编号和照片。
  2. 预设件 (Prefabs) 将三个 LocaleButton 预设件拖放到 工程 (Project) > RootPage > IVI Grid > Locales > LocaleSelector,每个地区一个。

  3. 工程 (Project) 中选择LocaleSelector 节点中LocaleButton 预设件的各实例,按下 F2 并以其设置的地区命名。
  4. 工程 (Project) 中选择LocaleSelectorLocaleButton 预设件的第一个实例并设置:
    1. 属性 (Properties) 中添加Localization.LocaleName 属性并将其值设为预设件的这个实例表示的地区。您为地区名称输入的文本即会用于 Kanzi 应用程序。
      例如,默认的地区将值设为English
    2. 节点组件 (Node Components) 中添加切换按钮: 打开 (Toggle Button: Toggled On) 触发器,添加设置属性 (Set Property) 动作并设置:
      • 目标项 (Target Item)屏幕 (Screen)
      • 目标属性 (Target Property)地区 (Locale)
      • 起始值 (Value From)固定值 (Fixed Value)
      • 固定值 (Fixed Value) 为要使用按钮设置的地区。
        例如,要设为默认地区,对于English,选择不因语言而异(不因国家而异) (Invariant Language (Invariant Country) ()) 值。
      点击保存 (Save)
  5. 为其他两个预设件重复上一步骤,且:
  6. 创建选择栏,显示选定地区:
    1. 预设件 (Prefabs)按下 Alt 并右键点击 LocaleButton 预设件,选择 2D 空节点 (Empty Node 2D),命名为 SelectionBar 并在属性 (Properties) 中设置:
      • 背景笔刷 (Background Brush)颜色笔刷 (Color Brush)
      • 布局宽度 (Layout Width) 为 5
      • 布局高度 (Layout Height) 为 70
    2. 预设件 (Prefabs) 中选择 LocaleButton 预设件,在属性 (Properties) 中添加状态机 (State Manager) 属性,将其设为 LanguageSelected
      使用状态机,在不同地区之间切换时控制选择栏。
  7. 预设件 (Prefabs) 中选择 LocaleButton 预设件,在属性 (Properties) 中添加组内索引 (Index in Group) 属性,将其设为 -1。
    Kanzi 使用组内索引 (Index in Group) 属性来跟踪在切换按钮组 (Toggle Button Group) 节点中选定的切换按钮 (Toggle Button)。当组内索引 (Index in Group) 属性的值为 -1,切换按钮组 (Toggle Button Group) 节点会为切换按钮 (Toggle Button) 设置索引。
  8. 工程 (Project) 中选择LocaleButton预设件的实例(设置English 地区),在属性 (Properties) 中添加切换状态 (Toggle State) 属性并设为 1。
    通过这种方式,您可在您启动应用程序时将 English 地区按钮设为默认选定。

    点击地区名称时,Kanzi Studio 会将应用程序中的文本更改为该地区,并在所选按钮的左侧显示选择栏。

为每个地区使用不同的纹理

应用程序包含一个纹理,您将其本地化以对每个地区使用不同的图像。

要本地化图像:

  1. <KanziWorkspace>/Tutorials/Localization/Assets/Images 将图像导入到工程。
  2. 工程 (Project) > RootPage > IVI Grid > LocationInformation 中右键点击图像 (Image) 节点并选择添加资源至本地化表 (Add Resources to a Localization Table)
    要将资源仅添加到选定的节点树的本地化表中,右键点击树中的顶层节点并选择添加资源至本地化表 (Add Resources to a Localization Table)Kanzi Studio添加资源至本地化表 (Add Resources to a Localization Table) 窗口中仅显示该树中使用的资源。
  3. 添加资源至本地化表 (Add Resources to a Localization Table) 窗口中设置:
    1. 本地化表 (Localization Table)本地化表 (Localization Table)
      选择您早前在本教程的这一步骤中创建的相同的本地化表。
    2. 选择 显示选定节点中的纹理资源并选择图像 (Image)
    3. 点击添加 (Add)
  4. 素材库 (Library) > 本地化 (Localization) 中双击本地化表(主)(Localization Table, Main) 本地化表打开本地化编辑器 (Localization Editor) 并在本地化编辑器 (Localization Editor) 中为每个地区的列选择要用于该地区的图像。
    例如,对于Spanish 地区使用 Image02,对于Finnish 地区使用 Image03。
    如果您没有为地区选择资源或值,Kanzi 会使用该地区的默认资源或值。默认值列在默认值 (Default Value) 列中。

< 简介
下一步 >

另请参阅

本地化应用程序

使用地区

使用按钮 (Button) 节点

使用状态机